import Mock from 'mockjs'
import StringUtils from '../../utils/stringUtils.js' 

let List = []
const count = 200

for(let i=0;i<count;i++){
	List.push(
		Mock.mock({
			id: Mock.Random.guid(),
			name: Mock.Random.cname(),
			addr: Mock.mock('@county(true)'),
			'age|18-60': 1,
			birth: Mock.Random.date(),
			sex: Mock.Random.integer(0,1)
		})
	)
}

export default {
	/**
	 * 获取数据
	 * 要带参数name,age,limt;name可以不填，page,size有默认值
	 */
	getUserList: config =>{
		const {name, age, page = 1, size} = StringUtils.param2Obj(config.url)
		const mockList = List.filter(user => {
			if(name && user.name.indexOf(name) === -1 && user.addr.indexOf(name) === -1) return false
			if(age && user.age != age) return false
			return true
		})
		const pageList = mockList.filter((item,index) => index < size * page && index >= size * (page - 1))
		return {
			code: 20000,
			count: mockList.length,
			list: pageList
		}
	},
	
	/**
	 * 增加用户
	 */
	addUser: config => {
		const {name, addr, age, birth, sex} = JSON.parse(config.body)
		List.unshift({
			id: Mock.Random.guid(),
			name: name,
			addr: addr,
			age: age,
			birth: birth,
			sex: sex
		})
		return {
			code: 20000,
			data: {
				message: '添加成功'
			}
		}
	},
	
	/**
	 * 删除用户
	 */
	deleteUser: config => {
		const {id} =JSON.parse(config.body) 
		if (!id){
			return {
				code: -999,
				message: '参数不正确'
			}
		}
		else{
			List = List.filter(u=>u.id !== id)
			return {
				code: 20000,
				message: '删除成功'
			}
		}
	},
	
	/**
	 * 批量删除
	 */
	batchremove: config =>{
		let { ids } = param2Obj(config.url)
		ids = ids.split(',')
		List = List.filter(u=>!ids.includes(u.id))
		return {
			code: 20000,
			data: {
				message: '批量删除成功'
			}
		}
	},
	
	/**
	 * 修改用户
	 */
	updateUser: config => {
		const { id, name, addr, age, birth, sex } = JSON.parse(config.body)
		const sex_num = parseInt(sex)
		List.some(u=>{
			if(u.id === id) {
				u.name = name
				u.addr = addr
				u.age = age
				u.birth = birth
				u.sex = sex_num
				return true
			}
		})
		return {
			code: 20000,
			data: {
				message: '编辑成功'
			}
		}
	}
}